// 路由文件中的四个步骤
// 1.加载express
// 2.创建路由对象
// 3.挂载接口
// 4.导出路由对象
const express = require('express');
// 创建路由对象
// 加载加密模块
const utility = require('utility');
// 加载jsonwebtoken
const jsonwebtoken = require('jsonwebtoken');
const db = require('../utils/db.js');
const router = express.Router();
// 注册接口
router.post('/reguser',async (req,res)=>{
    // 接收客户端提交的username和password
    // console.log(req.body);
    // 对密码进行加密
    req.body.password = utility.md5(req.body.password);
    let r = await db('insert into user set ?',req.body);
    // console.log(r);
    if(r && r.affectedRows > 0){
        // console.log('注册成功')
        res.send({
            status:0,
            msg:'注册成功'
        })
    }else{
        res.send({
            status:1,
            msg:'注册失败'
        })
    }
    
    
    
    // 添加到数据库并做出响应

});
// 登录接口
router.post('/login',async (req,res)=>{
    //通过账号密码是否正确
    let username = req.body.username;
    let pwd = utility.md5(req.body.password);
    // 判断账号密码是否正确
    let r = await db('select * from user where username=? and password=?',[username,pwd]);
    // 生成token
    if(r && r.length>0){
        res.send({
            status:0,
            msg:'登录成功',
            // 返回一个用于身份认证的token
            // token:'Bear ' + jsonwebtoken.sign('数据','用于加密和解密的字符串','配置项')
            // Bear后的空格不可省略
            token:'Bear '+jsonwebtoken.sign({username:req.body.username,id:r[0].id},'bigevent',{expiresIn:'1 days'})
        })
    }else{
        res.send({
            status:1,
            msg:'登录失败'
        })
    }
})

module.exports = router;